\unset ECHO\i test/setup.sqlSET client_min_messages = notice;
SELECT plan(29);
CREATE OR REPLACE FUNCTION public.testthis() RETURNS SETOF TEXT AS $$    SELECT pass('simple pass') AS foo    UNION SELECT pass('another simple pass')    ORDER BY foo ASC;
$$ LANGUAGE SQL;
CREATE OR REPLACE FUNCTION public.testplpgsql() RETURNS SETOF TEXT AS $$BEGIN    RETURN NEXT pass( 'plpgsql simple' );
    RETURN NEXT pass( 'plpgsql simple 2' );
    RETURN;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION public."test ident"() RETURNS SETOF TEXT AS $$BEGIN    RETURN NEXT pass( 'ident' );
    RETURN NEXT pass( 'ident 2' );
    RETURN;
END;
$$ LANGUAGE plpgsql;
SELECT is(    findfuncs('public'::name, '^test', 'this'),    ARRAY[ 'public."test ident"', 'public.testplpgsql'],    'findfuncs(public, ^test, this) should work');
SELECT is(    findfuncs('public'::name, '^test'),    ARRAY[ 'public."test ident"', 'public.testplpgsql', 'public.testthis' ],    'findfuncs(public, ^test) should work');
SELECT is(    findfuncs('^test', 'this'),    ARRAY[ 'public."test ident"', 'public.testplpgsql'],    'findfuncs(^test, this) should work');
SELECT is(    findfuncs('^test'),    ARRAY[ 'public."test ident"', 'public.testplpgsql', 'public.testthis' ],    'findfuncs(^test) should work');
SELECT is(    findfuncs('foo'),    CASE WHEN pg_version_num() < 80300 THEN NULL ELSE '{}'::text[] END,    'findfuncs(unknown) should find no tests');
SELECT * FROM do_tap('public', '^test');
SELECT * FROM do_tap('public'::name);
SELECT * FROM do_tap('^test');
SELECT * FROM do_tap();
SELECT * FROM finish();
ROLLBACK;
